草庐IT

MySQL IF THEN 在 WHERE 子句中

全部标签

MySQL 选择并计算具有不同 where 子句的 2 列

我觉得应该很容易,但是根本就不行。我有一个表,我想生成一个显示分组项目的图表,其中一个where子句(第1列)应该显示状态为0的条目,而另一个where子句(第2列)应该显示带有状态1.如果我只执行一个查询,它工作正常,但我想在一个组合查询中同时拥有这两个(状态0和状态1)。状态0查询:SELECTitem,quantity,COUNT(status)FROM`table`WHERE`retry`=1AND`status`=0GROUPBYitem,quantityORDERBYCOUNT(status)DESC状态1查询:SELECTitem,quantity,COUNT(statu

mysql - 优先执行 JOIN 关键字中的 WHERE 子句

我想知道,当我在指令join之后使用where子句时,会发生什么?其实我想知道的是执行的优先级。例如,考虑以下代码:select*fromtablename1t1innerjointablename2t2ont1.id=t2.idwhereid='10'那么上面的代码首先发生了什么?SQL将选择所有id为10的行,然后运行​​join关键字?还是join关键字先运行,然后是where子句? 最佳答案 要回答您的问题,Join首先运行,但如果您想过滤,请尝试此查询select*from(select*fromtablename1whe

php - 如何在 mysql 中使用带有 OR 子句的 'INSERT INTO IGNORE' 或 'NOT EXISTS'

我有一个名为equipment的表,表架构如下+----+-----------------+-------------------+--+----------------------+|id|equipment|cat_id(Default:1)||is_active(Default:1)|+----+-----------------+-------------------+--+----------------------+|1|AirCompressor|1||1||2|PlateCompactor|1||1||3|Hammer|1||1||4|TNT|1||1|+----+-

MySQL LEFT JOIN 或 WHERE IN SUBQUERY

我需要一条建议,现在构建一个应用程序,我需要在相当大的表上运行一些查询,可能以非常频繁的速度运行,所以我正在尝试获得最佳性能明智的方法。我有以下2个表:专辑:+---------------+--------------+------+-----+---------+----------------+|Field|Type|Null|Key|Default|Extra|+---------------+--------------+------+-----+---------+----------------+|id|int(11)|NO|PRI|NULL|auto_increment

mysql order by 子句在 select 语句之外

我不小心运行了以下查询并且它起作用了,现在我很困惑它为什么起作用。有人可以解释一下如何解释这个查询...(selectnamefromemploye_infolimit100)orderbyname;我一直认为“orderby”必须与显式select子句相关联,但在这种情况下它在()之外并且有效。这可能不是一个好的形式,但我只想知道这是偶然的还是预期的?谢谢! 最佳答案 您只需将排序应用于子查询在手册中查看更多信息:https://dev.mysql.com/doc/refman/5.5/en/select.htmlIfORDERB

MySql CASE WHEN THEN 也需要 WHERE?

我写了这个查询:SELECTcola,colb,colc,CASEcolbWHEN'6kHcnevOJOSU'THEN0WHEN'g45ujP0td6nw'THEN1WHEN'v83f15lALyFs'THEN2ENDASsorFROMmytable'sor'列正确返回,问题是查询返回所有行,而不仅仅是其中一种情况与colb匹配的行!我怎样才能让它只返回匹配的行?我需要添加WHERE吗?但是我总是在没有它的情况下看到这种语法。谢谢 最佳答案 只需添加一个where子句:SELECTcola,colb,colc,(CASEcolbWH

mysql - SQL OR 子句优先级

我有一个包含用户奖励的表格,可以是各种不同的类型。例如,这里是资格ID94的记录:如您所见,有2个用户,一个有“平均”、“最小”、“最大”和“最终”奖项类型的记录,另一个有相同但没有“最终”奖项的记录。我想要的是每个用户只获得1行。如果他们有“最终”类型的奖项,我想要那个,否则我想要“平均”类型的奖项,我根本不想要“最小”或“最大”。举个例子,这里是一个简单的IN子句查询:因此,基于此,我想要的结果是用户34562我想要获得“最终”奖励的行,而对于用户6256我想要获得“平均”奖励的行,因为他们没有'有一个“最终”记录。我确信这应该相当简单,但我今天早上失败得很惨。我想我应该能够选择最

MySQL 将 IN 子句中的值与每个组值匹配

我有以下MySQL表:idvalue1a1b2b2c3c我想查询此表并获取其组与MySQLIN子句中的元素匹配的所有id。例如,如果我提供IN("a","b","x","z"),我想返回1因为每一行在1(第1组)中匹配我在子句中提供的值。如何做到这一点? 最佳答案 如果我理解正确的话,这是一个有趣的问题。当受IN()列表限制时,此方法检查每个id的聚合COUNT()与总COUNT()当完全不受WHERE子句限制时,每个id的集合。如果这两个计数匹配,那是因为与id关联的每个value都在您的IN()列表中匹配。SELECTDISTI

mysql - 使结果排序与给定的 WHERE IN(a,b,c) 条件匹配的查询

我正在做一些工作来使用MySQL数据库填写文档。我想要做的是根据给定的WHERE条件生成结果。以下学生表:student+-----+------------+-----------------+-----+|id|nickname|student_name|...|+-----+------------+-----------------+-----+|1|Joy|Anderson|...||2|Prank|Campbell|...|+-----+------------+-----------------+-----+我向数据库提出了以下查询:SELECTnicknameFROMs

php - mysql where 语句中的when chinese word

这个问题在这里已经有了答案:Whatisthedifferencebetweenvarcharandnvarchar?(21个回答)关闭5年前。howtoselect主页报修上广告$sql="SELECTtext,picFROMnewstablewheretype='在线报修上广告'orderbyiddesclimit0,1";但是你可能会发现返回值为null但是我试着用这个$sql="SELECTtext,picFROMnewstablewheretype=N'在线报修上广告'orderbyiddesclimit0,1";'在线报修上广告'之前有N------>>>>>但是它有效..